Skip to content

Sizing:System fixes and docs updates#11431

Draft
joseph-robertson wants to merge 5 commits intodevelopfrom
sizing-obj-fixes
Draft

Sizing:System fixes and docs updates#11431
joseph-robertson wants to merge 5 commits intodevelopfrom
sizing-obj-fixes

Conversation

@joseph-robertson
Copy link
Collaborator

Pull request overview

Description of the purpose of this PR

Pull Request Author

  • Title of PR should be user-synopsis style (clearly understandable in a standalone changelog context)
  • Label the PR with at least one of: Defect, Refactoring, NewFeature, Performance, and/or DoNoPublish
  • Pull requests that impact EnergyPlus code must also include unit tests to cover enhancement or defect repair
  • Author should provide a "walkthrough" of relevant code changes using a GitHub code review comment process
  • If any diffs are expected, author must demonstrate they are justified using plots and descriptions
  • If changes fix a defect, the fix should be demonstrated in plots and descriptions
  • If any defect files are updated to a more recent version, upload new versions here or on DevSupport
  • If IDD requires transition, transition source, rules, ExpandObjects, and IDFs must be updated, and add IDDChange label
  • If structural output changes, add to output rules file and add OutputChange label
  • If adding/removing any LaTeX docs or figures, update that document's CMakeLists file dependencies
  • If adding/removing any output files (e.g., eplustbl.*)
    • Update ..\scripts\Epl-run.bat
    • Update ..\scripts\RunEPlus.bat
    • Update ..\src\EPLaunch\ MainModule.bas, epl-ui.frm, and epl.vbp (VersionComments)
    • Update ...github\workflows\energyplus.py

Reviewer

  • Perform a Code Review on GitHub
  • If branch is behind develop, merge develop and build locally to check for side effects of the merge
  • If defect, verify by running develop branch and reproducing defect, then running PR and reproducing fix
  • If feature, test running new feature, try creative ways to break it
  • CI status: all green or justified
  • Check that performance is not impacted (CI Linux results include performance check)
  • Run Unit Test(s) locally
  • Check any new function arguments for performance impacts
  • Verify IDF naming conventions and styles, memos and notes and defaults
  • If new idf included, locally check the err file and other outputs

@joseph-robertson joseph-robertson self-assigned this Feb 24, 2026
\paragraph{Field: Fraction of Autosized Heating Design Capacity}\label{field-fraction-of-autosized-heating-design-capacity}

Enter the heating capacity as a fraction of the autosized heating capacity. This input field is required when the Heating Design Capacity Method is \emph{FractionOfAutosizedHeatingCapacity}. This input field may be left blank if a heating coil is not included in the zone HVAC equipment or the Heating Design Capacity Method is not \emph{FractionOfAutosizedHeatingCapacity}. The program calculates the heating capacity from the design autosized cooling capacity and user specified fraction. Design day sizing run must be specified.
Enter the heating capacity as a fraction of the autosized heating capacity. This input field is required when the Heating Design Capacity Method is \emph{FractionOfAutosizedHeatingCapacity}. This input field may be left blank if a heating coil is not included in the zone HVAC equipment or the Heating Design Capacity Method is not \emph{FractionOfAutosizedHeatingCapacity}. The program calculates the heating capacity from the design autosized heating capacity and user specified fraction. Design day sizing run must be specified.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Heating", right?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does appear this word should be heating, however, heat pumps, if both coils are DX, size the heating coil based on cooling coil size. It's probably OK like this because the HP heating capacity would be based on cooling capacity, and the heating capacity would be multiplied by this fraction. So I guess leave as-is.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rraustad By as-is, you mean leave these fields as "... The program calculates the heating capacity from the design autosized cooling capacity and user specified fraction. ..."?

\paragraph{Field: Fraction of Autosized Cooling Design Capacity}\label{field-fraction-of-autosized-cooling-design-capacity-1}

Enter the cooling capacity as a fraction of the autosized cooling capacity. This input field is required when the Cooling Design Capacity Method is \emph{FractionOfAutosizedCoolingCapacity}. This input field may be left blank if a cooling coil is not included in the zone HVAC equipment or the Cooling Design Capacity Method is not \emph{FractionOfAutosizedCoolingCapacity}. The program calculates the cooling capacity from the design autosized cooling capacity and user specified fraction. Design day sizing run must be specified.
Enter the cooling capacity as a fraction of the autosized cooling capacity. This input field is required when the Cooling Design Capacity Method is \emph{FractionOfAutosizedCoolingCapacity}. This input field may be left blank if a cooling coil is not included in the airloop or the Cooling Design Capacity Method is not \emph{FractionOfAutosizedCoolingCapacity}. The program calculates the cooling capacity from the design autosized cooling capacity and user specified fraction.
Copy link
Collaborator Author

@joseph-robertson joseph-robertson Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

None of the other fields had "Design day sizing run must be specified"; copy-paste error?

(This is Sizing:System. Should it mirror DesignSpecification:ZoneHVAC:Sizing?)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a copy-paste error. An autosized value cannot be calculated without a sizing run. The field above for Cooling Design Capacity Per Floor Area doesn't need a sizing run because floor area would already be known.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I meant copy-paste error from DesignSpecification:ZoneHVAC:Sizing -> Sizing:System.

But based on your response, it sounds like we should add "Design day sizing run must be specified." to the following fields for Sizing:System:

  • Cooling Design Capacity
  • Fraction of Autosized Cooling Design Capacity (already has it)
  • Heating Design Capacity
  • Fraction of Autosized Heating Design Capacity

\paragraph{Field: Fraction of Autosized Heating Design Capacity}\label{field-fraction-of-autosized-heating-design-capacity-1}

Enter the heating capacity as a fraction of the autosized heating capacity. This input field is required when the Heating Design Capacity Method is FractionOfAutosizedHeatingCapacity. This input field may be left blank if heating coil is not included in the airloop or the Heating Design Capacity Method is not FractionOfAutosizedHeatingCapacity. The program calculates the heating capacity from the design autosized cooling capacity and user specified fraction.
Enter the heating capacity as a fraction of the autosized heating capacity. This input field is required when the Heating Design Capacity Method is \emph{FractionOfAutosizedHeatingCapacity}. This input field may be left blank if a heating coil is not included in the airloop or the Heating Design Capacity Method is not \emph{FractionOfAutosizedHeatingCapacity}. The program calculates the heating capacity from the design autosized heating capacity and user specified fraction.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Heating", right?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would agree with same comment.

@mitchute mitchute added the Defect Includes code to repair a defect in EnergyPlus label Feb 24, 2026
bool errorsFound = false;
HeatingCapacitySizer sizerHeatingCapacity;
sizerHeatingCapacity.overrideSizingString(SizingString);
state.dataSize->DataFracOfAutosizedHeatingCapacity = heatingCapacityMultiplier;
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Variable heatingCapacityMultiplier was suspiciously assigned but unused previously.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It appears you have validated this with the airflow network example file so this should be OK. It's just that I am very careful where/how these Data* global variables are used. This does seem correct.

@joseph-robertson
Copy link
Collaborator Author

I did some local testing using AirflowNetwork_MultiZone_House_OvercoolDehumid.idf (which contains both AirLoopHVAC:UnitaryHeatCool and Sizing:System objects), and indeed this bugfix seems to do what we want: Nominal Heating Capacity for AirLoopHVAC:UnitaryHeatCool now takes into account Fraction of Autosized Heating Design Capacity, and matches the Design Size Nominal Capacity for Coil:Heating:Fuel.

However, it doesn't appear any of the existing unit or regression tests cover this particular situation. Is local testing enough, or should I introduce a new unit test or sample file?

@mitchute
Copy link
Collaborator

A unit tests is probably preferred, though if you're able to modify the AirflowNetwork_MultiZone_House_OvercoolDehumid.idf test file without sacrificing other aspects, then that may also be an option.

…d.idf so we can test Sizing:System autosized heating fraction with AirLoopHVAC:UnitaryHeatCool.
@github-actions
Copy link

⚠️ Regressions detected on macos-14 for commit 0e3ec30

Regression Summary
  • Audit: 1
  • EIO: 1
  • ESO Big Diffs: 1
  • MTR Big Diffs: 1
  • Table Big Diffs: 1
  • Table String Diffs: 1

@github-actions
Copy link

⚠️ Regressions detected on ubuntu-24.04 for commit 0e3ec30

Regression Summary
  • Audit: 1
  • EIO: 1
  • ESO Big Diffs: 1
  • MTR Big Diffs: 1
  • Table Big Diffs: 1
  • Table String Diffs: 1

@github-actions
Copy link

⚠️ Regressions detected on macos-14 for commit 2e713cf

Regression Summary
  • Audit: 1
  • EIO: 1
  • ESO Big Diffs: 1
  • MTR Big Diffs: 1
  • Table Big Diffs: 1
  • Table String Diffs: 1

@github-actions
Copy link

⚠️ Regressions detected on ubuntu-24.04 for commit 2e713cf

Regression Summary
  • Audit: 1
  • EIO: 1
  • ESO Big Diffs: 1
  • MTR Big Diffs: 1
  • Table Big Diffs: 1
  • Table String Diffs: 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Defect Includes code to repair a defect in EnergyPlus

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fraction of autosized heating design capacity not applied to AirLoopHVAC:UnitaryHeatCool

4 participants